/*
 * Licensed to the 南京汇海交通科技有限公司
 *
 * Copyright (c) 2025.
 * All rights reserved.
 *
 * 本软件属南京汇海交通科技有限公司所有，在未获得南京汇海交通科技有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.chframework.boot.core.client;

/**
 * 防止 CSRF 攻击 和用户追踪（第三方恶意获取cookie），限制第三方 Cookie
 */
public enum SameSite {
    /**
     * 严格，完全禁止第三方获取cookie，跨站点时，任何情况下都不会发送cookie；只有当前网页的 URL 与请求目标一致，才会带上 Cookie。
     */
    STRICT("Strict"),
    /**
     * 防范跨站，大多数情况下禁止获取cookie，除非导航到目标网址的GET请求（链接、预加载、GET表单）；
     * 设置了Strict或Lax以后，基本就杜绝了 CSRF 攻击。当然，前提是用户浏览器支持 SameSite 属性。
     */
    LAX("Lax"),
    /**
     * 没有限制。必须同时设置Secure属性（Cookie 只能通过 HTTPS 协议发送），否则无效。
     */
    NONE("None");

    SameSite(String value) {
        this.value = value;
    }

    private String value;

    public String getValue() {
        return value;
    }
}
